<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>2.Object.defineProperty其二</title>
	</head>
	<body>
		<script type="text/javascript" >
			//定义一个number变量
			let number = 18

			// 定义一个person对象
			let person = {
				name:'强哥',
				sex:'女'
			}

			//借助点语法去追加age属性，只是“一锤子买卖”，后期没有联动效果
			//person.age = number

			//借助Object.defineProperty去追加age属性
			Object.defineProperty(person,'age',{
				enumerable:true,
				//get函数（getter）何时执行？—— 有人读取person对象的age属性时执行
				//get函数（getter）中的this是谁？ —— 当前对象（person）
				get:function peiqi(){
					console.log('getter执行了',this)
					return number
				},
				//set函数（setter）何时会被调用？ —— 有人修改person对象的age属性时执行
				//get函数（setter）中的this是谁？ —— 当前对象（person）
				set:function qiaozhi(value){
					console.log('有人修改了person的age属性，值为：',value,this)
					number = value
				}
			})
			
		</script>
	</body>
</html>